package cn.iocoder.yudao.module.bpm.api.tohandle;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.api.tohandle.dto.*;

import javax.validation.Valid;
import java.util.List;

/**
 * 流程实例 Api 接口
 *
 * @author 芋道源码
 */
public interface BpmToHandleApi {

    /**
     * 添加待办/待阅/
     * @return 代办中心流程id
     * */
    CommonResult<List<Long>> addToHandleFlowTask(String requestId, List<BpmHandleFlowTaskCreateReqDTO> bpmHandleTaskRespDTOList);

    /**
     * 分页查询待办/待阅/已办/已阅任务列表
     * @return 待办列表
     */
    PageResult<BpmHandleTaskRespDTO> getToHandleTaskList(PageParam pageParam, @Valid BpmHandleTaskSearchReqDTO reqDTO);

    /**
     * 分页查询我发起的流程
     * */
    PageResult<BpmFlowRespDTO> getFlowList(PageParam pageParam, @Valid BpmFlowSearchReqDTO reqDTO);

    /**
     * 添加收藏
     * */
    List<Long> addCollect(List<BpmCollectCreateReqDto> createCollectReqDtos);


    /**
     * 分页查询我的收藏
     * */
    List<BpmCollectInfoResDto> searchCollect(PageParam pageParam, BpmCollectSearchReqDto bpmCollectSearchReqDto);
}
